package org.jz.gae.redbook.spb.client;

import java.util.ArrayList;

import org.jz.gae.redbook.spb.shared.DistrictEntityView;
import org.jz.gae.redbook.spb.shared.FamilyEntityView;
import org.jz.gae.redbook.spb.shared.LocationEntityView;
import org.jz.gae.redbook.spb.shared.SpeciesEntityView;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("redBook")
public interface RedBookService extends RemoteService 
{
	String greetServer(String name) throws IllegalArgumentException;

	FamilyEntityView addFamily(FamilyEntityView family);
    Boolean deleteFamily(String id); 
	ArrayList<FamilyEntityView> getFamilyDetails();
	FamilyEntityView getFamily(String id);
	FamilyEntityView updateFamily(FamilyEntityView family);
	
	LocationEntityView addLocation(LocationEntityView location);
    Boolean deleteLocation(String id); 
	ArrayList<LocationEntityView> getLocationDetails();
	ArrayList<LocationEntityView> getLocationsForSpecies(
			String _SpeciesKey);
	LocationEntityView getLocation(String id);
	LocationEntityView updateLocation(LocationEntityView location);
	
	DistrictEntityView addDistrict(DistrictEntityView district);
    Boolean deleteDistrict(String id); 
	ArrayList<DistrictEntityView> getDistrictDetails();
	DistrictEntityView getDistrict(String id);
	DistrictEntityView updateDistrict(DistrictEntityView district);
	
	SpeciesEntityView addSpecies(SpeciesEntityView species);
    Boolean deleteSpecies(String id); 
	ArrayList<SpeciesEntityView> getSpeciesDetails();
	SpeciesEntityView getSpecies(String id);
	SpeciesEntityView updateSpecies(SpeciesEntityView species);
	
	
} 
